/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Dao;

import Bean.CadastroAdvogadoBean;
import Utils.Conexao;
import Utils.DataConvert;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;


/**
 *
 * @author william
 */
public class CadastroAdvogadoDao {

    public void salvar(CadastroAdvogadoBean p) throws SQLException {
        Connection con;
        con = Conexao.getConexao();
        String sql = "INSERT INTO `pessoa` (`idPessoa`, `cpf`, `nome`, `rg`, `endereco`, `telefone`, `nascimento`, `celular`, "
                + "`pai`, `mae`, `cep`, `numeroCasa`, `naturalidade`, `sexo`, `estadoCivil`, `cidade`, `ufNascimento`, `bairro`, "
                + "`estado`, `email`, `status`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?);";
        
        p.setIdPessoa(getid());
        
        PreparedStatement stmt = con.prepareStatement(sql);
        stmt.setInt(1, p.getIdPessoa());
        stmt.setString(2, p.getCpf());
        stmt.setString(3, p.getNome());
        stmt.setString(4, p.getRg());
        stmt.setString(5, p.getEndereco());
        stmt.setString(6, p.getTelefone());
        stmt.setDate(7, DataConvert.convert(p.getNascimento()));
        stmt.setString(8, p.getCelular());
        stmt.setString(9, p.getPai());
        stmt.setString(10, p.getMae());
        stmt.setString(11, p.getCep());
        stmt.setString(12, p.getNumeroCasa());
        stmt.setString(13, p.getNaturalidade());
        stmt.setString(14, p.getSexo());
        stmt.setString(15, p.getEstadocivil());
        stmt.setString(16, p.getCidade());
        stmt.setString(17, p.getUfNascimento());
        stmt.setString(18, p.getBairro());
        stmt.setString(19, p.getEstado());
        stmt.setString(20, p.getEmail());
        stmt.setString(21, p.getStatus());
        
     
        stmt.execute();
        stmt.close();
        con.close();
        salvarAdvogado(p);
    }
    
     public static void salvarAdvogado(CadastroAdvogadoBean p)throws SQLException{
            Connection con;
        con = Conexao.getConexao();
        String sql = "INSERT INTO `advogado` (idAdvogado, idPessoa, especialidade, oab, usuario, senha) VALUES (?,?,?,?,?,?);";
        
        PreparedStatement stmt = con.prepareStatement(sql);

        stmt.setInt(1, p.getIdavogado());
        stmt.setInt(2, p.getIdPessoa());
        stmt.setString(3, p.getEspecialidade());
        stmt.setString(4, p.getOab());
        stmt.setString(5, p.getUsuario());
        stmt.setString(6, p.getSenha());
        
        stmt.execute();
        stmt.close();
        con.close();
      }
    

    public static void alterar(CadastroAdvogadoBean p) throws SQLException {
        Connection con;
        con = Conexao.getConexao();
        String query = "update advogado set nome_advogado = ?, pai = ?, mae = ?, nascimento = ?, naturalidade = ?, rg = ?, cpf = ?, sexo = ?, estado_civil = ?, uf_nascimento = ?, endereco = ?, bairro = ?, cidade = ?, celular = ?, email = ?, numero_casa = ?, cep = ?, estado = ?, telefone = ?, oab = ? where id_advogado = ?";
        PreparedStatement stmt = con.prepareStatement(query);
        stmt.setString(1, p.getNome());
        stmt.setString(2, p.getPai());
        stmt.setString(3, p.getMae());
        stmt.setDate(4, DataConvert.convert(p.getNascimento()));
        stmt.setString(5, p.getNaturalidade());
        stmt.setString(6, p.getRg());
        stmt.setString(7, p.getCpf());
        stmt.setString(8, p.getSexo());
        stmt.setString(9, p.getEstadocivil());
        stmt.setString(10, p.getUfNascimento());
        stmt.setString(11, p.getEndereco());
        stmt.setString(12, p.getBairro());
        stmt.setString(13, p.getCidade());
        stmt.setString(14, p.getCelular());
        stmt.setString(15, p.getEmail());
        stmt.setString(16, p.getNumeroCasa());
        stmt.setString(17, p.getCep());
        stmt.setString(18, p.getEstado());
        stmt.setString(19, p.getTelefone());
        stmt.setString(20, p.getOab());
        stmt.setInt(21, p.getIdavogado());
        stmt.executeUpdate();
        stmt.close();
        con.close();
    }
     public int getid() throws SQLException {
       int id=0;
        Connection con = Conexao.getConexao();
        String sql = "select ifnull(max(pessoa.idPessoa),1)+1 from pessoa";

        PreparedStatement stmt = con.prepareStatement(sql);
        ResultSet rs = stmt.executeQuery();
        if (rs.next()) {
        id=rs.getInt(1);
        }
        stmt.close();
        rs.close();
        con.close();
        return id;
    }
    //para puxar do banco para atualizar a tabela 
    public static List<CadastroAdvogadoBean> getLista() throws SQLException {
        List<CadastroAdvogadoBean> lista = new ArrayList<CadastroAdvogadoBean>();
        Connection con = Conexao.getConexao();
        String sql =" SELECT  pessoa.idPessoa,  pessoa.cpf,  pessoa.nome,  pessoa.rg,  pessoa.endereco,  pessoa.telefone, pessoa.nascimento,"
        +" pessoa.celular, pessoa.pai,  pessoa.mae, pessoa.cep, pessoa.numeroCasa, pessoa.naturalidade,  pessoa.sexo,"  
        +" pessoa.estadoCivil,  pessoa.cidade,  pessoa.ufNascimento, pessoa.bairro,  pessoa.estado,  pessoa.email,"
        +" pessoa.status, advogado.oab, advogado.especialidade, advogado.usuario, advogado.senha, advogado.idAdvogado"  
        +" FROM pessoa, advogado"
        +" WHERE pessoa.idPessoa=advogado.idPessoa";
        
        PreparedStatement stmt = con.prepareStatement(sql);
        ResultSet rs = stmt.executeQuery();
        while (rs.next()) {
            CadastroAdvogadoBean c = new CadastroAdvogadoBean();
            c.setIdPessoa(rs.getInt("idPessoa"));
            c.setCpf(rs.getString("cpf"));
            c.setNome(rs.getString("nome"));
            c.setRg(rs.getString("rg"));
            c.setEndereco(rs.getString("endereco"));
            c.setTelefone(rs.getString("telefone"));
            c.setNascimento(rs.getDate("nascimento"));
            c.setCelular(rs.getString("celular"));
            c.setPai(rs.getString("pai"));
            c.setMae(rs.getString("mae"));
            c.setCep(rs.getString("cep"));
            c.setNumeroCasa(rs.getString("numeroCasa"));
            c.setNaturalidade(rs.getString("naturalidade"));
            c.setSexo(rs.getString("sexo"));
            c.setEstadocivil(rs.getString("estadoCivil"));
            c.setCidade(rs.getString("cidade"));
            c.setUfNascimento(rs.getString("ufNascimento"));
            c.setBairro(rs.getString("bairro"));
            c.setEstado(rs.getString("estado"));
            c.setEmail(rs.getString("email"));
            c.setStatus(rs.getString("status"));
            c.setOab(rs.getString("oab"));
            c.setEspecialidade(rs.getString("especialidade"));
            c.setUsuario(rs.getString("usuario"));
            c.setSenha(rs.getString("senha"));
            c.setIdavogado(rs.getInt("idAdvogado"));
            lista.add(c);
        }
        stmt.close();
        rs.close();
        con.close();
        return lista;
    }
    
    

//    public static List<CadastroAdvogadoBean> getLista() throws SQLException {
//        List<CadastroAdvogadoBean> lista = new ArrayList<CadastroAdvogadoBean>();
//        Connection con = Conexao.getConexao();
//        String sql = "SELECT"
//                + "     advogado.`cpf` AS advogado_cpf,"
//                + "     advogado.`nome_advogado` AS advogado_nome_advogado,"
//                + "     advogado.`rg` AS advogado_rg,"
//                + "     advogado.`endereco` AS advogado_endereco,"
//                + "     advogado.`telefone` AS advogado_telefone,"
//                + "     advogado.`nascimento` AS advogado_nascimento,"
//                + "     advogado.`celular` AS advogado_celular,"
//                + "     advogado.`pai` AS advogado_pai,"
//                + "     advogado.`mae` AS advogado_mae,"
//                + "     advogado.`cep` AS advogado_cep,"
//                + "     advogado.`numero_casa` AS advogado_numero_casa,"
//                + "     advogado.`naturalidade` AS advogado_naturalidade,"
//                + "     advogado.`sexo` AS advogado_sexo,"
//                + "     advogado.`estado_civil` AS advogado_estado_civil,"
//                + "     advogado.`cidade` AS advogado_cidade,"
//                + "     advogado.`uf_nascimento` AS advogado_uf_nascimento,"
//                + "     advogado.`bairro` AS advogado_bairro,"
//                + "     advogado.`estado` AS advogado_estado,"
//                + "     advogado.`email` AS advogado_email,"
//                + "     advogado.`id_advogado` AS advogado_id_advogado,"
//                + "     advogado.`oab` AS advogado_oab,"
//                + "     advogado.`especialidade` AS advogado_especialidade"
//                + " from advogado order by nome_advogado";
//        PreparedStatement stmt = con.prepareStatement(sql);
//        ResultSet rs = stmt.executeQuery();
//        while (rs.next()) {
//            CadastroAdvogadoBean c = new CadastroAdvogadoBean();
//            c.setIdavogado(rs.getInt("advogado_id_advogado"));
//            c.setNome(rs.getString("advogado_nome_advogado"));
//            c.setPai(rs.getString("advogado_pai"));
//            c.setMae(rs.getString("advogado_mae"));
//            c.setNascimento(rs.getString("advogado_nascimento"));
//            c.setNaturalidade(rs.getString("advogado_naturalidade"));
//            c.setRg(rs.getString("advogado_rg"));
//            c.setCpf(rs.getString("advogado_cpf"));
//            c.setEstadoCivil(rs.getString("advogado_estado_civil"));
//            c.setUf(rs.getString("advogado_uf_nascimento"));
//            c.setEndereco(rs.getString("advogado_endereco"));
//            c.setBairro(rs.getString("advogado_bairro"));
//            c.setCidade(rs.getString("advogado_cidade"));
//            c.setCelular(rs.getString("advogado_celular"));
//            c.setEmail(rs.getString("advogado_email"));
//            c.setNumero(rs.getString("advogado_numero_casa"));
//            c.setCep(rs.getString("advogado_cep"));
//            c.setEstado(rs.getString("advogado_estado"));
//            c.setTelefone(rs.getString("advogado_telefone"));
//            c.setSexo(rs.getString("advogado_sexo"));
//            c.setOab(rs.getString("advogado_oab"));
//            c.setEspecialidade(rs.getString("advogado_especialidade"));
//            lista.add(c);
//        }
//        stmt.close();
//        rs.close();
//        con.close();
//        return lista;
//    }
//
//    public static List<CadastroAdvogadoBean> getLista(String tipo, String filtro) throws SQLException {
//        List<CadastroAdvogadoBean> lista = new ArrayList<CadastroAdvogadoBean>();
//        Connection con = Conexao.getConexao();
//        String sql = "SELECT"
//                + "     advogado.`cpf` AS advogado_cpf,"
//                + "     advogado.`nome_advogado` AS advogado_nome_advogado,"
//                + "     advogado.`rg` AS advogado_rg,"
//                + "     advogado.`endereco` AS advogado_endereco,"
//                + "     advogado.`telefone` AS advogado_telefone,"
//                + "     advogado.`nascimento` AS advogado_nascimento,"
//                + "     advogado.`celular` AS advogado_celular,"
//                + "     advogado.`pai` AS advogado_pai,"
//                + "     advogado.`mae` AS advogado_mae,"
//                + "     advogado.`cep` AS advogado_cep,"
//                + "     advogado.`numero_casa` AS advogado_numero_casa,"
//                + "     advogado.`naturalidade` AS advogado_naturalidade,"
//                + "     advogado.`sexo` AS advogado_sexo,"
//                + "     advogado.`estado_civil` AS advogado_estado_civil,"
//                + "     advogado.`cidade` AS advogado_cidade,"
//                + "     advogado.`uf_nascimento` AS advogado_uf_nascimento,"
//                + "     advogado.`bairro` AS advogado_bairro,"
//                + "     advogado.`estado` AS advogado_estado,"
//                + "     advogado.`email` AS advogado_email,"
//                + "     advogado.`id_advogado` AS advogado_id_advogado,"
//                + "     advogado.`oab` AS advogado_oab,"
//                + "     advogado.`especialidade` AS advogado_especialidade"
//                + " from advogado ";
//
//        if (tipo.equalsIgnoreCase("nome")) {
//            sql += " where advogado.nome_advogado like '%" + filtro + "%'";
//        } else {
//            sql += " where advogado.cpf like '%" + filtro + "%'";
//        }
//
//        sql += " order by nome_advogado";
//
//        PreparedStatement stmt = con.prepareStatement(sql);
//        ResultSet rs = stmt.executeQuery();
//        while (rs.next()) {
//            CadastroAdvogadoBean c = new CadastroAdvogadoBean();
//            c.setIdavogado(rs.getInt("advogado_id_advogado"));
//            c.setNome(rs.getString("advogado_nome_advogado"));
//            c.setPai(rs.getString("advogado_pai"));
//            c.setMae(rs.getString("advogado_mae"));
//            c.setNascimento(rs.getString("advogado_nascimento"));
//            c.setNaturalidade(rs.getString("advogado_naturalidade"));
//            c.setRg(rs.getString("advogado_rg"));
//            c.setCpf(rs.getString("advogado_cpf"));
//            c.setEstadoCivil(rs.getString("advogado_estado_civil"));
//            c.setUf(rs.getString("advogado_uf_nascimento"));
//            c.setEndereco(rs.getString("advogado_endereco"));
//            c.setBairro(rs.getString("advogado_bairro"));
//            c.setCidade(rs.getString("advogado_cidade"));
//            c.setCelular(rs.getString("advogado_celular"));
//            c.setEmail(rs.getString("advogado_email"));
//            c.setNumero(rs.getString("advogado_numero_casa"));
//            c.setCep(rs.getString("advogado_cep"));
//            c.setEstado(rs.getString("advogado_estado"));
//            c.setTelefone(rs.getString("advogado_telefone"));
//            c.setSexo(rs.getString("advogado_sexo"));
//            c.setOab(rs.getString("advogado_oab"));
//            c.setEspecialidade(rs.getString("advogado_especialidade"));
//            lista.add(c);
//        }
//        stmt.close();
//        rs.close();
//        con.close();
//        return lista;
//    }
//
//    public static String queryRelatorio(boolean opc, String tipo, String filtro) throws SQLException {
//        String sql = "";
//        if (opc) {
//            sql = "SELECT"
//                    + "     advogado.`cpf` AS advogado_cpf,"
//                    + "     advogado.`nome_advogado` AS advogado_nome_advogado,"
//                    + "     advogado.`rg` AS advogado_rg,"
//                    + "     advogado.`endereco` AS advogado_endereco,"
//                    + "     advogado.`telefone` AS advogado_telefone,"
//                    + "     advogado.`nascimento` AS advogado_nascimento,"
//                    + "     advogado.`celular` AS advogado_celular,"
//                    + "     advogado.`pai` AS advogado_pai,"
//                    + "     advogado.`mae` AS advogado_mae,"
//                    + "     advogado.`cep` AS advogado_cep,"
//                    + "     advogado.`numero_casa` AS advogado_numero_casa,"
//                    + "     advogado.`naturalidade` AS advogado_naturalidade,"
//                    + "     advogado.`sexo` AS advogado_sexo,"
//                    + "     advogado.`estado_civil` AS advogado_estado_civil,"
//                    + "     advogado.`cidade` AS advogado_cidade,"
//                    + "     advogado.`uf_nascimento` AS advogado_uf_nascimento,"
//                    + "     advogado.`bairro` AS advogado_bairro,"
//                    + "     advogado.`estado` AS advogado_estado,"
//                    + "     advogado.`email` AS advogado_email,"
//                    + "     advogado.`id_advogado` AS advogado_id_advogado,"
//                    + "     advogado.`oab` AS advogado_oab,"
//                    + "     advogado.`especialidade` AS advogado_especialidade"
//                    + " from advogado order by nome_advogado";
//        } else {
//            sql = "SELECT"
//                    + "     advogado.`cpf` AS advogado_cpf,"
//                    + "     advogado.`nome_advogado` AS advogado_nome_advogado,"
//                    + "     advogado.`rg` AS advogado_rg,"
//                    + "     advogado.`endereco` AS advogado_endereco,"
//                    + "     advogado.`telefone` AS advogado_telefone,"
//                    + "     advogado.`nascimento` AS advogado_nascimento,"
//                    + "     advogado.`celular` AS advogado_celular,"
//                    + "     advogado.`pai` AS advogado_pai,"
//                    + "     advogado.`mae` AS advogado_mae,"
//                    + "     advogado.`cep` AS advogado_cep,"
//                    + "     advogado.`numero_casa` AS advogado_numero_casa,"
//                    + "     advogado.`naturalidade` AS advogado_naturalidade,"
//                    + "     advogado.`sexo` AS advogado_sexo,"
//                    + "     advogado.`estado_civil` AS advogado_estado_civil,"
//                    + "     advogado.`cidade` AS advogado_cidade,"
//                    + "     advogado.`uf_nascimento` AS advogado_uf_nascimento,"
//                    + "     advogado.`bairro` AS advogado_bairro,"
//                    + "     advogado.`estado` AS advogado_estado,"
//                    + "     advogado.`email` AS advogado_email,"
//                    + "     advogado.`id_advogado` AS advogado_id_advogado,"
//                    + "     advogado.`oab` AS advogado_oab,"
//                    + "     advogado.`especialidade` AS advogado_especialidade"
//                    + " from advogado ";
//
//            if (tipo.equalsIgnoreCase("nome")) {
//                sql += " where advogado.nome_advogado like '%" + filtro + "%'";
//            } else {
//                sql += " where advogado.cpf like '%" + filtro + "%'";
//            }
//            sql += " order by nome_advogado";
//        }
//        return sql;
//    }
//
//    public static void excluir(int id) throws SQLException {
//        Connection con = Conexao.getConexao();
//        String sql = "delete from advogado where id_advogado=" + id;
//        PreparedStatement stmt = con.prepareStatement(sql);
//        stmt.executeUpdate();
//        stmt.close();
//        con.close();
//    }
}
